package it.pecuswap.backend.entities;

// Generated 31-dic-2014 16.28.33 by Hibernate Tools 4.0.0

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Scontistica generated by hbm2java
 */
@Entity
@Table(name = "scontistica")
public class Scontistica implements java.io.Serializable {

	private static final long serialVersionUID = -7465673293009472982L;
	private long idSconto;
	private Profili profili;
	private StatiScontistica statiScontistica;
	private String descrizione;
	private Date dataInizioValidita;
	private Date dataFineValidita;
	private Set<CommentiSconti> commentiScontis = new HashSet<CommentiSconti>(0);

	public Scontistica() {
	}

	public Scontistica(long idSconto) {
		this.idSconto = idSconto;
	}

	public Scontistica(long idSconto, Profili profili,
			StatiScontistica statiScontistica, String descrizione,
			Date dataInizioValidita, Date dataFineValidita,
			Set<CommentiSconti> commentiScontis) {
		this.idSconto = idSconto;
		this.profili = profili;
		this.statiScontistica = statiScontistica;
		this.descrizione = descrizione;
		this.dataInizioValidita = dataInizioValidita;
		this.dataFineValidita = dataFineValidita;
		this.commentiScontis = commentiScontis;
	}

	@Id
	@Column(name = "id_sconto", unique = true, nullable = false)
	public long getIdSconto() {
		return this.idSconto;
	}

	public void setIdSconto(long idSconto) {
		this.idSconto = idSconto;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_profilo_creatore")
	public Profili getProfili() {
		return this.profili;
	}

	public void setProfili(Profili profili) {
		this.profili = profili;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_stato_scontistica")
	public StatiScontistica getStatiScontistica() {
		return this.statiScontistica;
	}

	public void setStatiScontistica(StatiScontistica statiScontistica) {
		this.statiScontistica = statiScontistica;
	}

	@Column(name = "descrizione")
	public String getDescrizione() {
		return this.descrizione;
	}

	public void setDescrizione(String descrizione) {
		this.descrizione = descrizione;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "data_inizio_validita", length = 29)
	public Date getDataInizioValidita() {
		return this.dataInizioValidita;
	}

	public void setDataInizioValidita(Date dataInizioValidita) {
		this.dataInizioValidita = dataInizioValidita;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "data_fine_validita", length = 29)
	public Date getDataFineValidita() {
		return this.dataFineValidita;
	}

	public void setDataFineValidita(Date dataFineValidita) {
		this.dataFineValidita = dataFineValidita;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "scontistica")
	public Set<CommentiSconti> getCommentiScontis() {
		return this.commentiScontis;
	}

	public void setCommentiScontis(Set<CommentiSconti> commentiScontis) {
		this.commentiScontis = commentiScontis;
	}

}
